<template>
  <div class="text-editor" ref="editor"></div>
</template>
<script>
import E from 'wangeditor'
import { UploadCourseImage } from '@/services/course'
export default {
  name: 'TextEditor',
  props: {
    value: {
      type: String,
      default: ''
    }
  },
  mounted () {
    // 富文本编辑器初始化
    this.initEditor()
  },
  data () {
    return {
      editor: null,
      // 用于标记编辑您是数据是否加载完毕
      isLoaded: false
    }
  },
  methods: {
    initEditor () {
      const editor = new E(this.$refs.editor)
      // 创建富文本编辑器之前 ，进行事件设置
      editor.config.onchange = value => {
        this.$emit('input', value)
      }
      // 配置自定义的图片上传功能
      editor.config.customUploadImg = async (resultFiles, insertImgFn) => {
        // resultFiles 是 input 中选中的文件列表
        // insertImgFn 是获取图片 url 后，插入到编辑器的方法
        const fd = new FormData()
        fd.append('file', resultFiles[0])
        const { data } = await UploadCourseImage(fd)
        if (data.code === '000000') {
          // 通过 insertImgFn传回给富文本编辑器进行显示
          insertImgFn(data.data.name)
        }
      }
      editor.create()
      editor.txt.html(this.value) // 重新设置编辑器内容
      this.editor = editor
    }
  },
  // 利用侦听器 监听 value 的变化(初始值)
  watch: {
    value () {
      // 记录状态
      if (this.isLoaded === false) {
        // 得到了加载的新数据，设置给符文版编辑器
        this.editor.txt.html(this.value)
        // 加载完毕
        this.isLoaded = true
      }
    }
  }
}
</script>
<style lang="scss" scoped>

</style>
